package com.rybbaby.tss.tasks.core.bean;

import java.lang.reflect.Method;

/**
 * @description 任务调度方法模型
 * 
 * @author 谢进伟
 * 
 * @createDate 2016年10月13日 下午3:37:25
 */
public class TaskMethodBean {
	
	/** 方法所属类 **/
	private Class<?> cls;
	/** 具体的要执行的任务调度的方法 **/
	private Method method;
	/** 方法名称 **/
	private String name;
	/** 方法执行任务的备注 **/
	private String remark;
	/**
	 * 用与cron相似的表达式,通常延长联合国* X定义包括触发第二分钟,小时,月日、月和日的一周。如。“0 * * * *
	 * MON-FRI”是指每分钟一次在工作日(顶部的分钟-第0个秒)。
	 **/
	private String cron = "";
	/** 时区的cron表达式。默认情况下,这个属性是空字符串(即服务器的本地时区将使用)。 **/
	private String zone = "";
	/** 执行任务调度的时间间隔。 **/
	private long fixedDelay = -1;
	/** 行任务调度的时间间隔,字符串形式 **/
	private String fixedDelayString = "";
	/** 执行定期的带注释的方法调用之间的间隔 **/
	private long fixedRate = -1;
	/** 执行定期的带注释的方法调用之间的间隔,字符串形式 **/
	private String fixedRateString = "";
	/** 第一次执行fixedRate或fixedDelay的任务之前的毫秒数 **/
	private long initialDelay = -1;
	/** 第一次执行fixedRate或fixedDelay的任务之前的毫秒数,字符串形式 **/
	private String initialDelayString = "";
	
	public TaskMethodBean (Class<?> cls , Method method , String name , String remark , String cron , String zone , long fixedDelay , String fixedDelayString , long fixedRate , String fixedRateString , long initialDelay , String initialDelayString ){
		super();
		this.cls = cls;
		this.method = method;
		this.name = name;
		this.remark = remark;
		this.cron = cron;
		this.zone = zone;
		this.fixedDelay = fixedDelay;
		this.fixedDelayString = fixedDelayString;
		this.fixedRate = fixedRate;
		this.fixedRateString = fixedRateString;
		this.initialDelay = initialDelay;
		this.initialDelayString = initialDelayString;
	}

	public Class<?> getCls() {
		return cls;
	}
	
	public void setCls(Class<?> cls) {
		this.cls = cls;
	}
	
	public Method getMethod() {
		return method;
	}
	
	public void setMethod(Method method) {
		this.method = method;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public String getRemark() {
		return remark;
	}
	
	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	public String getCron() {
		return cron;
	}
	
	public void setCron(String cron) {
		this.cron = cron;
	}
	
	public String getZone() {
		return zone;
	}
	
	public void setZone(String zone) {
		this.zone = zone;
	}
	
	public long getFixedDelay() {
		return fixedDelay;
	}
	
	public void setFixedDelay(long fixedDelay) {
		this.fixedDelay = fixedDelay;
	}
	
	public String getFixedDelayString() {
		return fixedDelayString;
	}
	
	public void setFixedDelayString(String fixedDelayString) {
		this.fixedDelayString = fixedDelayString;
	}
	
	public long getFixedRate() {
		return fixedRate;
	}
	
	public void setFixedRate(long fixedRate) {
		this.fixedRate = fixedRate;
	}
	
	public String getFixedRateString() {
		return fixedRateString;
	}
	
	public void setFixedRateString(String fixedRateString) {
		this.fixedRateString = fixedRateString;
	}
	
	public long getInitialDelay() {
		return initialDelay;
	}
	
	public void setInitialDelay(long initialDelay) {
		this.initialDelay = initialDelay;
	}
	
	public String getInitialDelayString() {
		return initialDelayString;
	}
	
	public void setInitialDelayString(String initialDelayString) {
		this.initialDelayString = initialDelayString;
	}

	@Override
	public String toString() {
		return "TaskMethod [cls=" + cls + ", method=" + method + ", name=" + name + ", remark=" + remark + ", cron=" + cron + ", zone=" + zone + ", fixedDelay=" + fixedDelay + ", fixedDelayString=" + fixedDelayString + ", fixedRate=" + fixedRate + ", fixedRateString=" + fixedRateString + ", initialDelay=" + initialDelay + ", initialDelayString=" + initialDelayString + "]";
	}
}
